package cn.stylefeng.guns.modular.order.entity;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

/**
 * 入库订单表
 */
@TableName("order_put")
@Data
public class OrderPut implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 系统单号
     */
    @TableField("put_number")
    private String putNumber;

    /**
     *客户id
     */
    @TableField("put_customer_id")
    private Long putCustomerId;

    /**
     * 客户名称
     */
    @TableField("put_customer_name")
    private String putCustomerName;

    /**
     * 结算单位
     */
    @TableField("settlementunit")
    private String settlementunit;

    /**
     * 客户单号
     */
    @TableField("put_customer_number")
    private String putCustomerNumber;

    /**
     * 预计入库时间（预计入库完成时间）
     */
    @TableField("estimatetime")
    private String estimatetime;

    /**
     * 仓库id
     */
    @TableField("warehouse_id")
    private Long warehouseId;

    /**
     * 仓库名称
     */
    @TableField("warehouse_name")
    private String warehouseName;

    /**
     * 入库订单类别
     */
    @TableField("put_type")
    private String putType;

    /**
     * 入库方式
     */
    @TableField("put_mode")
    private String putMode;

    /**
     * 来源地
     */
    @TableField("origin")
    private String origin;

    /**
     * 来源单位
     */
    @TableField("sourceunit")
    private String sourceunit;

    /**
     * 结算方式
     */
    @TableField("settlement")
    private String settlement;

    /**
     * 车牌号
     */
    @TableField("carnumber")
    private String carnumber;

    /**
     * 装运编号
     */
    @TableField("shipmentnumber")
    private String shipmentnumber;

    /**
     * 单据状态
     */
    @TableField("billstate")
    private String billstate;

    /**
     * 备注
     */
    @TableField("notes")
    private String notes;

    /**
     * 审核内容
     */
    @TableField("content")
    private String content;

    /**
     * 乐观锁
     */
    @TableField("version")
    private Integer version;

    /**
     * 交付客户id
     */
    @TableField("deliver_id")
    private Long deliverId;

    /**
     * 部门id
     */
    @TableField("dept_id")
    private Long deptId;

    /**
     * 制单时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 提交时间
     */
    @TableField("submission_time")
    private Date submissionTime;

    /**
     * 审核时间
     */
    @TableField("examine_time")
    private Date examineTime;

    /**
     * 开始入库时间（点开始入库）
     */
    @TableField("start_time")
    private Date startTime;

    /**
     * 完成入库时间（最后一托完成，或者库管员点击完成）
     */
    @TableField("complete_time")
    private Date completeTime;

    /**
     * 制单用户
     */
    @TableField(value = "create_user", fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 修改用户
     */
    @TableField(value = "update_user", fill = FieldFill.UPDATE)
    private Long updateUser;

    /**
     * 提交用户
     */
    @TableField("submission_user")
    private Long submissionUser;

    /**
     * 审核用户
     */
    @TableField("examine_user")
    private Long examineUser;

    /**
     * 开始入库用户
     */
    @TableField("start_user")
    private Long startUser;

    /**
     * 完成入库用户
     */
    @TableField("complete_user")
    private Long completeUser;

    /**
     * 制单用户名称
     */
    @TableField("create_name")
    private String createName;

    /**
     * 修改用户名称
     */
    @TableField("update_name")
    private String updateName;

    /**
     * 提交用户名称
     */
    @TableField("submission_name")
    private String submissionName;

    /**
     * 审核用户名称
     */
    @TableField("examine_name")
    private String examineName;

    /**
     * 开始入库用户名称
     */
    @TableField("start_name")
    private String startName;

    /**
     * 完成入库用户名称
     */
    @TableField("complete_name")
    private String completeName;

	@Override
    public String toString() {
        return "OrderPut{" +
        "id=" + id +
        ", putNumber=" + putNumber +
        ", putCustomerId=" + putCustomerId +
        ", putCustomerName=" + putCustomerName +
        ", settlementunit=" + settlementunit +
        ", putCustomerNumber=" + putCustomerNumber +
        ", estimatetime=" + estimatetime +
        ", warehouseId=" + warehouseId +
        ", warehouseName=" + warehouseName +
        ", putType=" + putType +
        ", putMode=" + putMode +
        ", origin=" + origin +
        ", sourceunit=" + sourceunit +
        ", settlement=" + settlement +
        ", carnumber=" + carnumber +
        ", shipmentnumber=" + shipmentnumber +
        ", billstate=" + billstate +
        ", notes=" + notes +
        ", content=" + content +
        ", version=" + version +
        ", deliverId=" + deliverId +
        ", deptId=" + deptId +
        ", createTime=" + createTime +
        ", updateTime=" + updateTime +
        ", submissionTime=" + submissionTime +
        ", examineTime=" + examineTime +
        ", startTime=" + startTime +
        ", completeTime=" + completeTime +
        ", createUser=" + createUser +
        ", updateUser=" + updateUser +
        ", submissionUser=" + submissionUser +
        ", examineUser=" + examineUser +
        ", startUser=" + startUser +
        ", completeUser=" + completeUser +
        ", createName=" + createName +
        ", updateName=" + updateName +
        ", submissionName=" + submissionName +
        ", examineName=" + examineName +
        ", startName=" + startName +
        ", completeName=" + completeName +
        "}";
    }
}
